package cn.yuanqiao.archive.collection.danganjieshou.mapper;

import cn.yuanqiao.archive.collection.danganjieshou.domain.YqGcReceiveFile;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 馆藏文件接收组件Mapper接口
 *
 * @ProjectName: JZSDAS
 * @Package: cn.yuanqiao.collection.danganjieshou.mapper
 * @ClassName: YqGcReceiveFileMapper
 * @Author: lenovo
 * @Description: hbWang
 * @Date: 2023/8/2 15:17
 * @Version: 1.0
 */
public interface YqGcReceiveFileMapper {
    /**
     * 查询馆藏文件接收组件
     *
     * @param id 馆藏文件接收组件主键
     * @return 馆藏文件接收组件
     */
    public YqGcReceiveFile selectYqGcReceiveFileById(@Param("id") String id, @Param("tableName") String tableName);

    /**
     * 根据卷id查询组件信息
     *
     * @param folderIds
     * @param tableName
     * @return
     */
    public List<YqGcReceiveFile> selectYqGcReceiveFileByFolderId(@Param("folderIds") String[] folderIds,
                                                                 @Param("tableName") String tableName);

    /**
     * 查询馆藏文件接收组件列表
     *
     * @param data 馆藏文件接收组件
     * @return 馆藏文件接收组件集合
     */
    public List<YqGcReceiveFile> selectYqGcReceiveFileList(@Param("data") YqGcReceiveFile data,
                                                           @Param("tableName") String tableName);

    /**
     * 新增馆藏文件接收组件
     *
     * @param data 馆藏文件接收组件
     * @return 结果
     */
    public int insertYqGcReceiveFile(@Param("data") YqGcReceiveFile data,
                                     @Param("tableName") String tableName);

    /**
     * 修改馆藏文件接收组件
     *
     * @param data 馆藏文件接收组件
     * @return 结果
     */
    public int updateYqGcReceiveFile(@Param("data") YqGcReceiveFile data,
                                     @Param("tableName") String tableName);

    /**
     * 修改馆藏文件接收组件控制属性
     *
     * @param controlType 控制属性
     * @param folderId 卷的id
     * @return 结果
     */
    public int updateYqGcReceiveFileByFolderId(@Param("controlType") String controlType, @Param("folderId") String folderId,
                                               @Param("tableName") String tableName);


    /**
     * 删除馆藏文件接收组件
     *
     * @param id 馆藏文件接收组件主键
     * @return 结果
     */
    public int deleteYqGcReceiveFileById(@Param("id") String id, @Param("tableName") String tableName);

    /**
     * 批量删除馆藏文件接收组件
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteYqGcReceiveFileByIds(@Param("ids") String[] ids, @Param("tableName") String tableName);

    /**
     * 根据卷id删除卷内件
     * @param folderIds
     * @param tableName
     * @return
     */
    public int deleteYqGcReceiveFileByfolderIds(@Param("folderIds") String[] folderIds,
                                                @Param("tableName") String tableName);
}
